package com.fcat.base.smartapi.service;

public interface TokenService {
    String getCreditToken(String meterNo, String sgc, int tariffIndex, int keyVersion, int keyExpiredTime, long keyNo, int seqNo, int amount);

    String getKeyChangeToken(String meterNo, String sgc, int tariffIndex, int keyVersion, int keyExpiredTime, long keyNo, String nSgc, int nTariffIndex, int nKeyVersion, int nKeyExpiredTime, long nKeyNo);

    String getClearBalanceToken(String meterNo, String sgc, int tariffIndex, int keyVersion, int keyExpiredTime, long keyNo, int seqNo);

    String getClearEventToken(String meterNo, String sgc, int tariffIndex, int keyVersion, int keyExpiredTime, long keyNo, int seqNo);

    String getMaxPowerLimitToken(String meterNo, String sgc, int tariffIndex, int keyVersion, int keyExpiredTime, long keyNo, int seqNo, int activatingModel, String activatingDate, int[] maxPowerLimits, int[] hours);

    String getSingleTariffToken(String meterNo, String sgc, int tariffIndex, int keyVersion, int keyExpiredTime, long keyNo, int seqNo, String activatingDate, int activatingModel, int validDate, int rate);

    String getStepTariffToken(String meterNo, String sgc, int tariffIndex, int keyVersion, int keyExpiredTime, long keyNo, int seqNo, String activatingDate, int activatingModel, int validDate, int[] rates, int[] steps);

    String getTOUTariffToken(String meterNo, String sgc, int tariffIndex, int keyVersion, int keyExpiredTime, long keyNo, int seqNo, String activatingDate, int activatingModel, int validDate, int[] rates, int[] times);

    String getFriendModeToken(String meterNo, String sgc, int tariffIndex, int keyVersion, int keyExpiredTime, long keyNo, int seqNo, int friendMode, int[] times, int[] days, int N_of_allowable_days);

    String getChangeMeterModeToken(String meterNo, String sgc, int tariffIndex, int keyVersion, int keyExpiredTime, long keyNo, int seqNo, int mode);

    String getSetCreditAmountLimitOrOverdrawAmountLimitToken(String meterNo, String sgc, int tariffIndex, int keyVersion, int keyExpiredTime, long keyNo, int seqNo, int amountType, int amountLimit);

    String SetLowCreditWarningLimitToken(String meterNo, String sgc, int tariffIndex, int keyVersion, int keyExpiredTime, long keyNo, int seqNo, int amountType, int amountLimit);

    String getTestToken(int manufacturingID, long control);

    String getLogoffToken(String meterNo, String sgc, int tariffIndex, int keyVersion, int keyExpiredTime, long keyNo, int seqNo);

    String getFriendHolidayToken(String meterNo, String sgc, int tariffIndex, int keyVersion, int keyExpiredTime, long keyNo, int seqNo, int holidayMode, String[] holidays);

    String getReturnToken(String meterNo, String sgc, int tariffIndex, int keyVersion, int keyExpiredTime, long keyNo, String Token);

    String encryptSmartCardReturnData(int answerToReset, int binaryPattern, int version, String meterID, String customerID, String utilityID, long sanctionedLoad, int meterType, int lastRechargeAmount, String lastRechargeDate, String lastTransactionID, String cardType, String pwdData, int TokenTotalNumber, String[] tokens);

    String decryptSmartCardReturnData(String meterNo, String sgc, int tariffIndex, int keyVersion, int keyExpiredTime, long keyNo, String encryptedData);

}
